下面的程序用于输出"Welcome Home",其中唯一的错误在哪里?

来源:百度知道 编辑:UC知道 时间:2024/06/22 19:13:41
void test(void)
{
char pcArray[12];
strcpy(pcArray,"Welcome Home");
printf("%s!\n",pcArray);
return;
}

void test(void)
{
char pcArray[12];
strcpy(pcArray,"Welcome Home");
printf("%s!\n",pcArray);
return;
}
其中唯一的错误在:
数组pcArray[12]; 太小了,字符串“Welcome Home”加上结束符号‘\0’共13个字符
而pcArray只能存放12个字符,strcpy会让数组越界的。

吧PCARRAY的大小加一

pcArray[12];定义的范围太小了!这样在输出的时候程序无法判断字符串是否为结束。所以就是会输出一些不必要的东西来!

pcArray 给的空间不足,建议[13]或更大,因为字符串结束符也要占一byte.

数组的长度应至少为13,因为字符数组的最后除了你自己写的外还有一个由系统自动添加的'\0'字符。

12好像可以的,去掉void
#include "stdio.h"
test(void)
{
char pcArray[12];
strcpy(pcArray,"Welcome Home");
printf("%s!\n",pcArray);
return;
}
main(){
char *str;
str=test();
getch();
}